// ArtExtensibility.h : Declaration of the CArtExtensibility

#pragma once
#include "resource.h"       // main symbols

#include "ArtFrame.h"


/* <title IArtExtensibility>
   <toctitle IArtExtensibility>
   
   CArtExtensibility            */

class ATL_NO_VTABLE CArtExtensibility : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CArtExtensibility, &CLSID_ArtExtensibility>,
	public IDispatchImpl<IArtExtensibility, &IID_IArtExtensibility, &LIBID_ArtFrameLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
	CArtExtensibility()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_ARTEXTENSIBILITY)


BEGIN_COM_MAP(CArtExtensibility)
	COM_INTERFACE_ENTRY(IArtExtensibility)
	COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()


	DECLARE_PROTECT_FINAL_CONSTRUCT()

	HRESULT FinalConstruct()
	{
		return S_OK;
	}
	
	void FinalRelease() 
	{
	}

public:

	STDMETHOD(OnAddInsUpdate)(void);
	STDMETHOD(OnBeginShutdown)(void);
	STDMETHOD(OnConnection)(IArtApp* pArtApp, enumArtConnectMode ConnectMode, IAddIn* AddInInst, IDispatch* pUserDispatch);
	STDMETHOD(OnStartupComplete)();
	STDMETHOD(OnDisconnection)(enumArtConnectMode ConnectMode);
};

OBJECT_ENTRY_AUTO(__uuidof(ArtExtensibility), CArtExtensibility)
